import axios from 'axios';

axios.defaults.crossDomain = true;
axios.defaults.withCredentials = true;  //设置cross跨域 并设置访问权限 允许跨域携带cookie信息
// /*默认设置*/

var state = 1;

function fetchApi(options){
    return new Promise((resolve,reject)=>{

        const instance = axios.create({   //instance创建一个axios实例，可以自定义配置，可在 axios文档中查看详情
            // baseURL: '',  // 基础url前缀
            headers: {
                'Content-Type': 'application/json;charset=UTF-8',
                'Authorization': window.localStorage.Authorization
            },
            validateStatus: function (status) {
                return status < 500; // 状态码在大于或等于500时才会 reject
            }
        });
        
        instance(options).then(response => { //then 请求成功之后进行什么操作
            // code 401  未登录状态
            if (response.data.code == "401") {
                state++;
                if(state == 2){
                    alert('因为长时间没有操作,为了您的账号安全,您已被强制登出!!请重新登录。如有任何疑问，请联系上线或客服中心。');
                    
                    var clearInfo = window.localStorage.clear();
                    window.location.href = top.location.href;

                    return;
                }
                
            }
            if (response.data.code != "401" && response.status != "200") {
                alert(response.data.msg);
            }
            resolve(response);  //把请求到的数据发到引用请求的地方


        }).catch(error => {
            
            console.error("错误信息：" + error);
            reject(error);
        });

    })
}



// GET
export function ApiGet(apiUrl, params) {
    return fetchApi({
        url: apiUrl,
        method: 'get',
        params: params
    })
}

// POST
export function ApiPost(apiUrl, data) {
    return fetchApi({
        url: apiUrl,
        method: 'post',
        data: data
    })
}

// PUT
export function ApiPut(apiUrl, data) {
    return fetchApi({
        url: apiUrl,
        method: 'put',
        data: data
    })
}
